package com.tcoiss.datafactory.service.impl;

import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
import com.tcoiss.datafactory.mapper.SaleTypeConfigMapper;
import com.tcoiss.datafactory.domain.SaleTypeConfig;
import com.tcoiss.datafactory.service.ISaleTypeConfigService;

import java.util.List;
import java.util.Map;

/**
 * 销售类型配置Service业务层处理
 *
 * @author zw
 * @date 2021-05-27
 */
@Service
public class SaleTypeConfigServiceImpl extends ServiceImpl<SaleTypeConfigMapper, SaleTypeConfig> implements ISaleTypeConfigService {

    @Override
    public List<SaleTypeConfig> queryList(SaleTypeConfig saleTypeConfig) {
        LambdaQueryWrapper<SaleTypeConfig> lqw = Wrappers.lambdaQuery();
        if (StringUtils.isNotBlank(saleTypeConfig.getSaleTypeName())){
            lqw.like(SaleTypeConfig::getSaleTypeName ,saleTypeConfig.getSaleTypeName());
        }
        if (StringUtils.isNotBlank(saleTypeConfig.getBillTypeName())){
            lqw.like(SaleTypeConfig::getBillTypeName ,saleTypeConfig.getBillTypeName());
        }
        if(StringUtils.isNotBlank(saleTypeConfig.getBillTypeNo())){
            lqw.eq(SaleTypeConfig::getBillTypeNo ,saleTypeConfig.getBillTypeNo());
        }
        if(StringUtils.isNotBlank(saleTypeConfig.getBizTypeNo())){
            lqw.eq(SaleTypeConfig::getBizTypeNo ,saleTypeConfig.getBizTypeNo());
        }
        lqw.orderByDesc(SaleTypeConfig::getId);
        return this.list(lqw);
    }

    @Override
    public List<SaleTypeConfig> getSaleType(String billTypeNo, String bizTypeNo) {
        if(billTypeNo != null && bizTypeNo != null){
            SaleTypeConfig stc = new SaleTypeConfig();
            stc.setBillTypeNo(billTypeNo).setBizTypeNo(bizTypeNo);
            List<SaleTypeConfig> stcList = queryList(stc);
            return stcList;
        }
        return null;
    }
}
